package com.hy.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.hy.common.Result;
import com.hy.dto.user.HeatMapData;
import com.hy.entity.UserAddress;
import java.util.List;
import java.util.Map;

public interface UserAddressService extends IService<UserAddress> {

    /**
     * 获取用户的地址列表
     * @return 地址列表
     */
    List<UserAddress> getUserAddresses();

    /**
     * 设置默认地址
     * @param id 地址ID
     * @return 是否成功
     */
    boolean setDefault(Long id);

    /**
     * 删除地址
     * @param id 地址ID
     * @return 是否成功
     */
    boolean delete(Long id);

    /**
     * 保存地址
     */
    Result<Void> saveAddress(UserAddress address);

    /**
     * 获取省份级别的用户热力图数据
     */
    public List<HeatMapData> getProvinceHeatMapData();

    /**
     * 获取城市级别的用户热力图数据
     */
    public List<HeatMapData> getCityHeatMapData();

    /**
     * 获取区县级别的用户热力图数据
     */
    public List<HeatMapData> getDistrictHeatMapData();

    /**
     * 获取所有用户位置点数据
     */
    public List<HeatMapData> getAllUserLocations();

    // 获取省份用户分布
    public List<Map<String, Object>> getProvinceUserDistribution();

    // 获取城市用户分布
    public List<Map<String, Object>> getCityUserDistribution(Long provinceId);

    // 获取区县用户分布
    public List<Map<String, Object>> getDistrictUserDistribution(Long cityId);

    // 获取省份下的用户列表
    public List<String> getUsersByProvince(Long provinceId);

    // 获取城市下的用户列表
    public List<String> getUsersByCity(Long cityId);

    // 获取区县下的用户列表
    public List<String> getUsersByDistrict(Long districtId);
}
